home *** CD-ROM | disk | FTP | other *** search
/ PC Users 1999 May / Cd Pc Users extra 20 mayo 1999.iso / Prog / Inst / FTP / BCB_PGM.CPP < prev    next >
Encoding:
C/C++ Source or Header  |  1999-03-19  |  6.6 KB  |  225 lines

  1. //---------------------------------------------------------------------------
  2. #include <vcl\vcl.h>
  3. #pragma hdrstop
  4.  
  5. #include "bcb_pgm.h"
  6. #include "fce.h"
  7.  
  8. #define MAX_BUF 2048
  9.  
  10. #define GET_FILE_CMD 1
  11. #define PUT_FILE_CMD 2
  12. #define DEL_FILE_CMD 3
  13.  
  14. static int CommandButton = 0;
  15.  
  16. static char Server[64]   = "\0";
  17. static char Username[40] = "\0";
  18. static char Password[40] = "\0";
  19.  
  20. static char Filename[64] = "\0";
  21. static char Temp[128] = "\0";
  22. static char DataBuffer[MAX_BUF];
  23. //---------------------------------------------------------------------------
  24. #pragma resource "*.dfm"
  25. TFtpForm *FtpForm;
  26. //---------------------------------------------------------------------------
  27. __fastcall TFtpForm::TFtpForm(TComponent* Owner)
  28.         : TForm(Owner)
  29. {int Version;
  30.  int Build;
  31.  AnsiString Text;
  32.  FtpForm->Cursor = crArrow;
  33.  fceAttach(1);
  34.  Version = fceGetInteger(0,FCE_GET_VERSION);
  35.  Build   = fceGetInteger(0,FCE_GET_BUILD);
  36.  wsprintf(Temp,"FCE32 Version: %1d.%1d.%1d Build %d",
  37.     0x0f&(Version>>8),0x0f&(Version>>4),0x0f&Version,Build);
  38.  eDisplay->Lines->Add(Temp);
  39.  fceGetString(0,FCE_GET_REGISTRATION,Temp,127);
  40.  eDisplay->Lines->Add(Temp);
  41. }
  42. //---------------------------------------------------------------------------
  43. void __fastcall TFtpForm::mExitClick(TObject *Sender)
  44. {fceClose(0);
  45.  fceRelease();
  46.  Close();
  47. }
  48. //---------------------------------------------------------------------------
  49. void __fastcall TFtpForm::mConnectClick(TObject *Sender)
  50. {int Code;
  51.  fceSetString(0,FCE_SET_LOG_FILE,(LPSTR)"bcb_pgm.log");
  52.  // get Server info from form
  53.  eServer->GetTextBuf((char *)Server, 64);
  54.  if(strlen(Server)<=1)
  55.    {eDisplay->Lines->Add("'Server' field is empty!");
  56.     return;
  57.    }
  58.  // get Username info from form
  59.  eUsername->GetTextBuf((char *)Username, 40);
  60.  if(strlen(Username)<=1)
  61.    {eDisplay->Lines->Add("'Username' field is empty!");
  62.     return;
  63.    }
  64.  // get Password info from form
  65.  ePassword->GetTextBuf((char *)Password, 40);
  66.  if(strlen(Password)<=1)
  67.    {eDisplay->Lines->Add("'Password' field is empty!");
  68.     return;
  69.    }
  70.  // attempt to connect
  71.  FtpForm->Cursor = crHourGlass;
  72.  eDisplay->Lines->Add("Connecting...");
  73.  Code = fceConnect(0,
  74.    (LPSTR)Server,
  75.    (LPSTR)Username,
  76.    (LPSTR)Password);
  77.  FtpForm->Cursor = crArrow;
  78.  if(Code>=0)
  79.    {eDisplay->Lines->Add("Connection completed.");
  80.     mBinary->Enabled = true;
  81.     mAscii->Enabled = true;
  82.     mList->Enabled = true;
  83.     mGetFile->Enabled = true;
  84.     mPutFile->Enabled = true;
  85.     mDelFile->Enabled = true;
  86.     mConnect->Enabled = false;
  87.    }
  88.   else
  89.    {eDisplay->Lines->Add("Unable to connect.");
  90.     fceErrorText(0,Code,(LPSTR)Temp,127);
  91.     eDisplay->Lines->Add(Temp);
  92.    }
  93. }
  94. //---------------------------------------------------------------------------
  95. void __fastcall TFtpForm::mAsciiClick(TObject *Sender)
  96. {int Code;
  97.  Code = fceSetMode(0,'A');
  98.  if(Code<0)
  99.    {fceErrorText(0,Code,(LPSTR)Temp,127);
  100.     eDisplay->Lines->Add(Temp);
  101.    }
  102.  else eDisplay->Lines->Add("Transfer mode is set to ASCII");
  103. }
  104. //---------------------------------------------------------------------------
  105. void __fastcall TFtpForm::mBinaryClick(TObject *Sender)
  106. {int Code;
  107.  Code = fceSetMode(0,'B');
  108.  if(Code<0)
  109.    {fceErrorText(0,Code,(LPSTR)Temp,127);
  110.     eDisplay->Lines->Add(Temp);
  111.    }
  112.  else eDisplay->Lines->Add("Transfer mode is set to BINARY");
  113. }
  114. //---------------------------------------------------------------------------
  115. void __fastcall TFtpForm::mListClick(TObject *Sender)
  116. {int Code;
  117.  FtpForm->Cursor = crHourGlass;
  118.  mList->Enabled = false;
  119.  Code = fceGetList(0,FCE_FULL_LIST,(LPSTR)DataBuffer,MAX_BUF);
  120.  if(Code<0)
  121.     {fceErrorText(0,Code,(LPSTR)Temp,127);
  122.      eDisplay->Lines->Add(Temp);
  123.     }
  124.  else
  125.     {eDisplay->Lines->Add(DataBuffer);
  126.      eDisplay->Lines->Add("[END]");
  127.     }
  128.  mList->Enabled = true;
  129.  FtpForm->Cursor = crArrow;
  130. }
  131. //---------------------------------------------------------------------------
  132. void __fastcall TFtpForm::mGetFileClick(TObject *Sender)
  133. {
  134.  mGetFile->Enabled = false;
  135.  eFilename->Visible = true;
  136.  lFilename->Visible = true;
  137.  bFilename->Caption = "GET";
  138.  bFilename->Visible = true;
  139.  CommandButton = GET_FILE_CMD;
  140. }
  141. //---------------------------------------------------------------------------
  142. void __fastcall TFtpForm::mPutFileClick(TObject *Sender)
  143. {
  144.  mGetFile->Enabled = false;
  145.  eFilename->Visible = true;
  146.  lFilename->Visible = true;
  147.  bFilename->Caption = "PUT";
  148.  bFilename->Visible = true;
  149.  CommandButton = PUT_FILE_CMD;
  150. }
  151. //---------------------------------------------------------------------------
  152. void __fastcall TFtpForm::mDelFileClick(TObject *Sender)
  153. {
  154.  mGetFile->Enabled = false;
  155.  eFilename->Visible = true;
  156.  lFilename->Visible = true;
  157.  bFilename->Caption = "DEL";
  158.  bFilename->Visible = true;
  159.  CommandButton = DEL_FILE_CMD;
  160. }
  161. //---------------------------------------------------------------------------
  162. void __fastcall TFtpForm::bFilenameClick(TObject *Sender)
  163. {int Code;
  164.  int Len;
  165.  // get filename info from form
  166.  eFilename->GetTextBuf((char *)Filename, 64);
  167.  Len = strlen(Filename);
  168.  if(Len<=1)
  169.    {eDisplay->Lines->Add("'Filename' field is empty!");
  170.     mGetFile->Enabled = true;
  171.     mPutFile->Enabled = true;
  172.     mDelFile->Enabled = true;
  173.     return;
  174.    }
  175.  // strip trailing linefeed, if any.
  176.  if(Filename[Len-1]=='\n')
  177.    {Filename[Len-1] = '\0';
  178.     Len--;
  179.    }
  180.   // strip trailing carriage return, if any.
  181.  if(Filename[Len-1]=='\r')
  182.    {Filename[Len-1] = '\0';
  183.     Len--;
  184.    }
  185.  // disable menu buttons
  186.  mGetFile->Enabled = false;
  187.  eFilename->Visible = false;
  188.  lFilename->Visible = false;
  189.  bFilename->Visible = false;
  190.  FtpForm->Cursor = crHourGlass;
  191.  // execute the operation
  192.  switch(CommandButton)
  193.    {case GET_FILE_CMD:
  194.       wsprintf(Temp,"Downloading '%s'", Filename);
  195.       eDisplay->Lines->Add(Temp);
  196.       Code = fceGetFile(0,(LPSTR)Filename);
  197.       mGetFile->Enabled = true;
  198.       break;
  199.     case PUT_FILE_CMD:
  200.       wsprintf(Temp,"Uploading '%s'", Filename);
  201.       eDisplay->Lines->Add(Temp);
  202.       Code = fcePutFile(0,(LPSTR)Filename);
  203.       mPutFile->Enabled = true;
  204.       break;
  205.     case DEL_FILE_CMD:
  206.       wsprintf(Temp,"Deleting %s", Filename);
  207.       eDisplay->Lines->Add(Temp);
  208.       Code = fceDelFile(0,(LPSTR)Filename);
  209.       mDelFile->Enabled = true;
  210.       break;
  211.     default:
  212.       Code = 0;
  213.       break;
  214.    }
  215.   CommandButton = 0;
  216.   // error ?
  217.   if(Code<0)
  218.     {fceErrorText(0,Code,(LPSTR)Temp,127);
  219.      eDisplay->Lines->Add(Temp);
  220.     }
  221.  else eDisplay->Lines->Add("Operation completed.");
  222.  FtpForm->Cursor = crArrow;
  223. }
  224. //---------------------------------------------------------------------------
  225.